<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    
    <script>
        
        // 形容一只猫的特征  name  skill  call 
        
        // 面向过程
        var name = "小Ba";
        var color = "white";
        function skill(){
            console.log('很会抓老鼠...');
        }

        function call(){
            console.log('喵喵00');
        }

        // 面向对象 
        // 最简单的面向对象  (对象里面定义 属性和方法)
        var Kitty = {
            name:"Kitty",
            color:"black",
            skill(){
                console.log('很会抓老鼠...');
            },
            call(){
                console.log('喵喵00');
            }
        }

        var Feifei = {
            name:"Feifei",
            color:"purple",
            skill(){
                console.log('抓老鼠...');
            },
            call(){
                console.log('喵喵00');
            }
        }

        var Lele = {
            name:"Lele",
            color:"orange",
            skill(){
                console.log('抓老鼠...');
            },
            call(){
                console.log('喵喵00');
            }
        }


        // 封装函数 得到 构造函数 (首字母大写 ) Promise Date Array
        // 优点  可以根据传入的参数 快速生产对象 


        // 封装的函数  不是构造函数 
        function cat(name,color){
            var obj= {
                name:name,
                color:color,
                skill(){
                    console.log('抓老鼠...');
                },
                call(){
                    console.log('喵喵00');
                }
            }
            return obj 
        }

        var cat1 = cat("小美",'pink');
        console.log(cat1,cat1 instanceof cat,cat1 instanceof Object);
    </script>
</body>
</html>